|
|
#include <sysdep.h>
#include "include/libjwgc.h"
Go to the source code of this file.
Functions | |
int | JSetupComm () |
int | JConnect () |
void | JCleanupSocket () |
|
Definition at line 93 of file JFile.c. References getenv(). Referenced by jabber_finalize(). 00094 { 00095 char savefile[MAXNAMLEN]; 00096 FILE *savefd; 00097 char *envptr; 00098 00099 envptr = getenv("JWGCSCK"); 00100 if (!envptr) { 00101 (void) sprintf(savefile, "/tmp/jwgcsck.%d", getuid()); 00102 envptr = savefile; 00103 } 00104 unlink(envptr); 00105 }
|
|
Definition at line 54 of file JFile.c. References getenv(). Referenced by jwg_start(). 00055 { 00056 int sock; 00057 struct sockaddr_un sockaddr; 00058 char file[MAXNAMLEN]; 00059 struct linger li; 00060 char *envptr; 00061 00062 li.l_onoff = 1; 00063 li.l_linger = 900; 00064 00065 sock = socket(AF_UNIX, SOCK_STREAM, 0); 00066 if (sock < 0) { 00067 return -1; 00068 } 00069 envptr = getenv("JWGCSCK"); 00070 if (!envptr) { 00071 (void) sprintf(file, "/tmp/jwgcsck.%d", getuid()); 00072 envptr = file; 00073 } 00074 sockaddr.sun_family = AF_UNIX; 00075 00076 strcpy(sockaddr.sun_path, envptr); 00077 if (connect(sock, (struct sockaddr *)&sockaddr, 00078 strlen(sockaddr.sun_path)+1 + sizeof(sockaddr.sun_family)) 00079 < 0) { 00080 return -1; 00081 } 00082 00083 if (setsockopt(sock, SOL_SOCKET, SO_LINGER, (char *)&li, sizeof(li)) 00084 == -1) { 00085 return -1; 00086 } 00087 00088 00089 return sock; 00090 }
|
|
Definition at line 7 of file JFile.c. References getenv(). Referenced by jwg_servstart(). 00008 { 00009 mode_t prevmode; 00010 int sock; 00011 struct sockaddr_un sockaddr; 00012 char file[MAXNAMLEN]; 00013 struct linger li; 00014 char *envptr; 00015 00016 li.l_onoff = 1; 00017 li.l_linger = 900; 00018 00019 prevmode = umask(S_IRWXO|S_IRWXG); 00020 sock = socket(AF_UNIX, SOCK_STREAM, 0); 00021 if (sock < 0) { 00022 return -1; 00023 } 00024 envptr = getenv("JWGCSCK"); 00025 if (!envptr) { 00026 (void) sprintf(file, "/tmp/jwgcsck.%d", getuid()); 00027 envptr = file; 00028 } 00029 unlink(envptr); 00030 00031 sockaddr.sun_family = AF_UNIX; 00032 strcpy(sockaddr.sun_path, envptr); 00033 if (bind(sock, (struct sockaddr *)&sockaddr, 00034 strlen(sockaddr.sun_path)+1 + sizeof(sockaddr.sun_family)) 00035 < 0) { 00036 return -1; 00037 } 00038 if (listen(sock, 10) < 0) { 00039 return -1; 00040 } 00041 00042 if (setsockopt(sock, SOL_SOCKET, SO_LINGER, (char *)&li, sizeof(li)) 00043 == -1) { 00044 return -1; 00045 } 00046 00047 00048 umask(prevmode); 00049 00050 return sock; 00051 }
|
Last updated at Tue Dec 18 21:07:42 PST 2007. | This site and project hosted by... |