55 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* talkd.c Copyright Michael Temari 07/22/1996 All Rights Reserved */
 | |
| 
 | |
| #include <sys/types.h>
 | |
| #include <stdio.h>
 | |
| #include <string.h>
 | |
| #include <unistd.h>
 | |
| #include <net/gen/in.h>
 | |
| 
 | |
| #include "talk.h"
 | |
| #include "talkd.h"
 | |
| #include "net.h"
 | |
| #include "process.h"
 | |
| 
 | |
| _PROTOTYPE(int main, (int argc, char *argv[]));
 | |
| 
 | |
| int opt_d = 0;
 | |
| char myhostname[HOST_SIZE+1];
 | |
| 
 | |
| int main(argc, argv)
 | |
| int argc;
 | |
| char *argv[];
 | |
| {
 | |
| struct talk_request request;
 | |
| struct talk_reply reply;
 | |
| 
 | |
|    if(argc > 1)
 | |
|    	if(strcmp(argv[1], "-d") || argc > 2) {
 | |
|    		fprintf(stderr, "Usage: talkd [-d]\n");
 | |
|    		return(-1);
 | |
|    	} else
 | |
| 		opt_d = 1;
 | |
| 
 | |
|    if(getuid() != 0) {
 | |
| 	fprintf(stderr, "talkd: Must be run as super user\n");
 | |
| 	return(-1);
 | |
|    }
 | |
| 
 | |
|    if(gethostname(myhostname, HOST_SIZE) < 0) {
 | |
|    	fprintf(stderr, "talkd: Error getting hostname\n");
 | |
|    	return(-1);
 | |
|    }
 | |
| 
 | |
|    if(NetInit()) {
 | |
|    	fprintf(stderr, "talkd: Error in NetInit\n");
 | |
|    	return(-1);
 | |
|    }
 | |
| 
 | |
|    while(getrequest(&request) == 0) {
 | |
|    	if(processrequest(&request, &reply)) break;
 | |
|    	if(sendreply(&request, &reply)) break;
 | |
|    }
 | |
| 
 | |
|    return(-1);
 | |
| }
 | 
