- Timestamp:
- Aug 25, 2002, 3:02:14 PM (22 years ago)
- Branches:
- master, barnowl_perlaim, debian, owl, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- c01e477
- Parents:
- 4b464a4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
zwrite.c
r4b464a4 r56330ff 1 1 #include <string.h> 2 #include <pwd.h> 3 #include <sys/types.h> 4 #include <unistd.h> 2 5 #include "owl.h" 3 6 … … 17 20 int argc, badargs, myargc; 18 21 char **argv, **myargv; 22 char *zsigexec, *zsigowlvar, *zsigzvar, *ptr; 23 struct passwd *pw; 19 24 20 25 badargs=0; … … 25 30 strcpy(z->inst, "personal"); 26 31 strcpy(z->opcode, ""); 32 z->zsig=owl_strdup(""); 27 33 z->cc=0; 28 34 z->noping=0; … … 103 109 } 104 110 111 /* set a zsig */ 112 zsigexec = owl_global_get_zsig_exec(&g); 113 zsigowlvar = owl_global_get_zsig(&g); 114 zsigzvar = ZGetVariable("zwrite-signature"); 115 116 if (zsigowlvar && *zsigowlvar) { 117 owl_free(z->zsig); 118 z->zsig=strdup(zsigowlvar); 119 } else if (zsigexec && *zsigexec) { 120 FILE *file; 121 char buff[LINE]; 122 123 file=popen(zsigexec, "r"); 124 if (!file) { 125 if (zsigzvar && *zsigzvar) { 126 owl_free(z->zsig); 127 z->zsig=owl_strdup(zsigzvar); 128 } 129 } else { 130 owl_free(z->zsig); 131 z->zsig=owl_malloc(LINE); 132 strcpy(z->zsig, ""); 133 while (fgets(buff, LINE, file)) { /* wrong sizing */ 134 strcat(z->zsig, buff); 135 } 136 pclose(file); 137 if (z->zsig[strlen(z->zsig)-1]=='\n') { 138 z->zsig[strlen(z->zsig)-1]='\0'; 139 } 140 } 141 } else if (zsigzvar) { 142 owl_free(z->zsig); 143 z->zsig=owl_strdup(zsigzvar); 144 } else if (((pw=getpwuid(getuid()))!=NULL) && (pw->pw_gecos)) { 145 owl_free(z->zsig); 146 z->zsig=strdup(pw->pw_gecos); 147 ptr=strchr(z->zsig, ','); 148 if (ptr) { 149 ptr[0]='\0'; 150 } 151 } 152 105 153 return(0); 106 154 } … … 160 208 } 161 209 if (z->cc) { 162 send_zephyr(z->opcode, NULL, z->class, z->inst, to, tmpmsg);210 send_zephyr(z->opcode, z->zsig, z->class, z->inst, to, tmpmsg); 163 211 } else { 164 send_zephyr(z->opcode, NULL, z->class, z->inst, to, msg);212 send_zephyr(z->opcode, z->zsig, z->class, z->inst, to, msg); 165 213 } 166 214 } … … 190 238 } 191 239 240 char *owl_zwrite_get_zsig(owl_zwrite *z) { 241 return(z->zsig); 242 } 243 192 244 void owl_zwrite_get_recipstr(owl_zwrite *z, char *buff) { 193 245 int i, j; … … 225 277 void owl_zwrite_free(owl_zwrite *z) { 226 278 owl_list_free_all(&(z->recips), &owl_free); 227 } 279 owl_free(z->zsig); 280 }
Note: See TracChangeset
for help on using the changeset viewer.