int clipfind(char **aret, int ret, char *tok);
int tar_parseargs(int argc, char *argv[], char *Optarg, int Optind);
+/*The following definitions come from connection.c */
+
+BOOL yield_connection(int cnum,char *name,int max_connections);
+BOOL claim_connection(int cnum,char *name,int max_connections,BOOL Clear);
+
/*The following definitions come from credentials.c */
char *credstr(uchar *cred);
int reply_lanman2(char *outbuf);
int reply_nt1(char *outbuf);
void close_cnum(int cnum, uint16 vuid);
-BOOL yield_connection(int cnum,char *name,int max_connections);
-BOOL claim_connection(int cnum,char *name,int max_connections,BOOL Clear);
void exit_server(char *reason);
void standard_sub(int cnum,char *str);
char *smb_fn_name(int type);
void start_nmbd(void);
void stop_smbd(void);
void stop_nmbd(void);
+void kill_pid(int pid);
+
+/*The following definitions come from web/statuspage.c */
+
+void status_page(void);
/*The following definitions come from web/swat.c */
reload_services(True);
reopen_logs();
+ if (lp_status(-1)) {
+ claim_connection(-1,"STATUS.",MAXSTATUS,True);
+ }
+
break;
case 0x89: /* session keepalive request
if(!open_oplock_ipc())
exit(1);
- if (lp_status(-1)) {
- claim_connection(-1,"STATUS.",MAXSTATUS,True);
- }
-
process();
close_sockets();
struct connect_record crec;
pstring fname;
FILE *f;
- int i, pid;
- char *v;
if (cgi_variable("smbd_start")) {
start_smbd();
stop_nmbd();
}
+ pstrcpy(fname,lp_lockdir());
+ standard_sub_basic(fname);
+ trim_string(fname,"","/");
+ strcat(fname,"/STATUS..LCK");
+
+
f = fopen(fname,"r");
if (f) {
while (!feof(f)) {
char buf[30];
sprintf(buf,"kill_%d", crec.pid);
if (cgi_variable(buf)) {
- kill_pid(pid);
+ kill_pid(crec.pid);
}
}
}
printf("<FORM method=post>\n");
- pstrcpy(fname,lp_lockdir());
- standard_sub_basic(fname);
- trim_string(fname,"","/");
- strcat(fname,"/STATUS..LCK");
-
f = fopen(fname,"r");
if (!f) {
printf("Couldn't open status file %s\n",fname);
while (!feof(f)) {
if (fread(&crec,sizeof(crec),1,f) != 1)
break;
- if (crec.magic == 0x280267 && process_exists(crec.pid)) {
+ if (crec.magic == 0x280267 &&
+ crec.cnum == -1 &&
+ process_exists(crec.pid)) {
printf("<tr><td>%d</td><td>%s</td><td>%s</td><td>%s</td><td><input type=submit value=\"X\" name=\"kill_%d\"></td></tr>\n",
crec.pid,
crec.machine,crec.addr,