JavaTCPFork/.git
11 years agoMultiple minor changes:
gumartinm [Sun, 20 Jan 2013 21:28:54 +0000 (22:28 +0100)]
Multiple minor changes:

1. Return -1 from main function as error code.
2. Close useless file descriptors in child process.
3. Improving some comments and error messages.
4. Errors from poll function.

11 years agoEXIT_SUCCESS & EXIT_FAILURE constants / _exit
gumartinm [Sun, 23 Dec 2012 19:15:17 +0000 (20:15 +0100)]
EXIT_SUCCESS & EXIT_FAILURE constants / _exit

About _exit: I do not think I really need to use _exit but anyway it seems to me like it does not hurt me so... Let's do it in the right way!!!

From: http://www.unixguide.net/unix/programming/1.1.3.shtml / http://stupefydeveloper.blogspot.com.es/2009/01/c-to-exit-or-to-exit.html

There are a few differences between exit() and _exit()
that become significant when fork(), and especially
vfork(), is used.

The basic difference between exit() and _exit() is that
the former performs clean-up related to user-mode constructs in the
library, and calls user-supplied cleanup functions, whereas the latter
performs only the kernel cleanup for the process.

In the child branch of a fork(), it is normally incorrect to use
exit(), because that can lead to stdio buffers being flushed
twice, and temporary files being unexpectedly removed. In C++ code the
situation is worse, because destructors for static objects may be run
incorrectly. (There are some unusual cases, like daemons, where the
parent should call _exit() rather than the child; the
basic rule, applicable in the overwhelming majority of cases, is that
exit() should be called only once for each entry into
main.)

In the child branch of a vfork(), the use of exit() is
even more dangerous, since it will affect the state of the parent
process.

11 years agoFixed error in sizeof for unsigned char.
gumartinm [Sun, 23 Dec 2012 18:48:37 +0000 (19:48 +0100)]
Fixed error in sizeof for unsigned char.

11 years agoRight type for storing return code from fork
gumartinm [Tue, 18 Dec 2012 05:30:04 +0000 (06:30 +0100)]
Right type for storing return code from fork

11 years agoUnblock SIGCHLD signal in child process.
gumartinm [Tue, 18 Dec 2012 05:25:48 +0000 (06:25 +0100)]
Unblock SIGCHLD signal in child process.

11 years agoExit from custom SIGINT handler. The right way.
gumartinm [Tue, 18 Dec 2012 04:50:42 +0000 (05:50 +0100)]
Exit from custom SIGINT handler. The right way.

As seen on: http://www.cons.org/cracauer/sigint.html

11 years agoBlocking SIGCHLD with pthread_sigmask
gumartinm [Tue, 18 Dec 2012 03:46:18 +0000 (04:46 +0100)]
Blocking SIGCHLD with pthread_sigmask

11 years agoImproving the set signal_handler code
gumartinm [Tue, 18 Dec 2012 01:40:45 +0000 (02:40 +0100)]
Improving the set signal_handler code

11 years agoUsing right type for data bytes:
gumartinm [Mon, 17 Dec 2012 20:29:33 +0000 (21:29 +0100)]
Using right type for data bytes:

* char:
It is the type that makes up C strings like "abcde"
It also works out as a number value, but it is unspecified whether that value is treated as signed or unsigned. Beware character comparisons through inequalities - although if you limit yourself to ASCII (0-127) you're just about safe.

* signed char:
Gives you at least the -128 to 127 range.

* unsigned char:
Gives you at least the 0 to 255 range.

There is this warning: pointer targets in passing argument 1 of â€˜system’ differ in signedness
I guess, it does not hurt me.

11 years agoCheck shell has not set up an initial action
gumartinm [Mon, 17 Dec 2012 19:33:22 +0000 (20:33 +0100)]
Check shell has not set up an initial action

12 years agoThe daemon process sends to the Java client in case of any error the value -1.
gumartinm [Sun, 18 Mar 2012 11:57:11 +0000 (12:57 +0100)]
The daemon process sends to the Java client in case of any error the value -1.
In this way, the Java client's code always will receive a return status from the daemon process
and just in case of any error it receives an error status.

12 years agoXML parser removed. We begin to use my own protocol.
gumartinm [Sun, 4 Mar 2012 20:45:23 +0000 (21:45 +0100)]
XML parser removed. We begin to use my own protocol.
Next step: Java NIO for the Java client code.

12 years agoComment with questions about packing, serializing and alginment
gumartinm [Sun, 26 Feb 2012 23:40:33 +0000 (00:40 +0100)]
Comment with questions about packing, serializing and alginment

12 years agoMore steps in my JavaTCPForkDaemon.
gumartinm [Sun, 26 Feb 2012 22:03:01 +0000 (23:03 +0100)]
More steps in my JavaTCPForkDaemon.
I must concatenate the protocold header and the payload.
Should I use writev?

12 years agoSome code improvements.
gumartinm [Mon, 6 Feb 2012 00:33:35 +0000 (01:33 +0100)]
Some code improvements.
First steps with the new way to send the stdout, stderr and return status code
to the client program. Thinking about a typedef struct, but I am wasting bytes
using this way. Is it worth wasting bytes?

12 years agoRemoving some useless white spaces....
gumartinm [Tue, 31 Jan 2012 06:17:45 +0000 (07:17 +0100)]
Removing some useless white spaces....
Sorry for this commit...

12 years agoNothing important,
gumartinm [Tue, 31 Jan 2012 05:47:23 +0000 (06:47 +0100)]
Nothing important,
just another english grammar mistake in javafor.c

12 years agoClening up code, and errors control.
gumartinm [Mon, 30 Jan 2012 22:47:56 +0000 (23:47 +0100)]
Clening up code, and errors control.
TODO: stop using XML, I am going to use my own protocol for
sending stdout, stderr and return status code in this way
I will avoid the shared memory and the code complexity.
Besides it should reduce the memory usage.
Next weekend more.

12 years agoNew nice method to read data from socket.
gumartinm [Sun, 29 Jan 2012 23:44:01 +0000 (00:44 +0100)]
New nice method to read data from socket.
Some useless comments just left to remind me what I am going to do the next week.
Just is left to improve the fork_system function (IMHO)

12 years agoSome minor changes in REAME files
gumartinm [Sun, 29 Jan 2012 16:07:40 +0000 (17:07 +0100)]
Some minor changes in REAME files

12 years agoGrammar mistake in README file :/
gumartinm [Sun, 29 Jan 2012 16:03:23 +0000 (17:03 +0100)]
Grammar mistake in README file :/

12 years agoRemoving executable file
gumartinm [Sun, 29 Jan 2012 16:01:27 +0000 (17:01 +0100)]
Removing executable file

12 years agofirst commit
gumartinm [Sun, 29 Jan 2012 16:00:44 +0000 (17:00 +0100)]
first commit