/* If the tag ignor_autoconf if set, disable this feature by * setting the variables * /proc/sys/net/ipv6/conf/all/autoconf * /proc/sys/net/ipv6/conf/all/accept_ra * /proc/sys/net/ipv6/conf/all/accept_ra_defrtr * /proc/sys/net/ipv6/conf/all/accept_ra_pinfo * /proc/sys/net/ipv6/conf/all/accept_redirects * to 0 to avoid the monitoring host to be attacked */ void autoconf() { char *request ="/config_ndpmon/ignor_autoconf/text()"; char *flag; xmlXPathObjectPtr xmlobject = xmlXPathEval ((xmlChar*)request, xpctxt); if( xmlobject != NULL) { flag = (char *)xmlobject->nodesetval->nodeTab[0]->content; ignor_autoconf = atoi(flag); /* Not working for BSD */ #ifdef _LINUX_ /** note: it may be a good option to save values, and restore * them when exiting */ write_proc("/proc/sys/net/ipv6/conf/all/autoconf",flag); write_proc("/proc/sys/net/ipv6/conf/all/accept_ra",flag); write_proc("/proc/sys/net/ipv6/conf/all/accept_ra_defrtr",flag); write_proc("/proc/sys/net/ipv6/conf/all/accept_ra_pinfo",flag); write_proc("/proc/sys/net/ipv6/conf/all/accept_redirects",flag); } #endif xmlXPathFreeObject (xmlobject); return; }
int main() { numberProcess = getNumberProcess(); procs = malloc(numberProcess * sizeof(struct proc)); for (int i = 0; i < numberProcess; ++i) procs[i].exists = 0; DIR *dir = opendir("/proc"); struct dirent *entry; while ((entry = readdir(dir)) != NULL) if (entry->d_name[0] != '.' && isNumber(entry->d_name)) { char full_path[256] = "/proc/"; strcat(full_path, entry->d_name); add(full_path); } closedir(dir); printf("Process withhout parent:\n"); for (int i = 0; i < numberProcess; ++i) if (procs[i].exists && procs[i].ppid == 0) printf("%d %s\n", i, procs[i].name); printf("------------------------\n\n"); write_proc(0, 0); free(procs); return 0; }
void write(port *out, pointer object) { if (object == NULL) { printf("()"); return; } switch (type(object)) { case T_STRING: write_string(out, object); break; case T_NUMBER: write_number(out, object); break; case T_SYMBOL: write_symbol(out, object); break; case T_PAIR: write_pair(out, object); break; case T_BUILT_IN_REGULAR_PROC: case T_BUILT_IN_SPECIAL_PROC: case T_EXTEND_PROC: write_proc(out, object); break; case T_MACRO: write_macro(out, object); break; default: wirte_unknown(out, object); break; } }
void* drive_test (void* arg_v) { struct drive_test_arg* dta = (struct drive_test_arg*) arg_v; int i; for (i=0; i<dta->count; i++) { if (dta->write) write_proc(); else read_proc(); } }
void write_proc(int pid, int spaces) { for (int i = 0; i < spaces; ++i) printf(" "); printf("%d %s\n", pid, procs[pid].name); // n^2 for (int i = 0; i < numberProcess; ++i) if (procs[i].exists && procs[i].ppid == pid) write_proc(procs[i].pid, spaces + 2); }
G_MODULE_EXPORT void on_save_menu_item_activate( GtkObject *object, gpointer user_data) { GtkWidget *dialog; char previous_filename[100]; *previous_filename= '\0'; dialog = gtk_file_chooser_dialog_new ("Save Xlook File", GTK_WINDOW(ui_globals.main_window), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); if (strlen(previous_filename)==0) { // gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), default_folder_for_saving); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Untitled document"); } else gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), previous_filename); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { char *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); // perform the save. write_proc(filename); g_free (filename); } gtk_widget_destroy (dialog); }
static int echocli_setup(char *oname, char *ename, int *dev) { char *args[5]; char proc_path[50]; int rc; pthread_mutex_lock(&m_config); args[0] = cmdname; /* OSC */ /* attach "osc" oscname oscuuid */ args[1] = "osc"; args[2] = args[3] = oname; rc = jt_lcfg_attach(4, args); if (rc) { fprintf(stderr, "%s: can't attach osc '%s' (%d)\n", cmdname, oname, rc); /* Assume we want e.g. an old one cleaned anyhow. */ goto clean; } /* setup ostname "OSS_UUID" */ args[1] = target; args[2] = "OSS_UUID"; rc = jt_lcfg_setup(3, args); if (rc) { fprintf(stderr, "%s: can't setup osc '%s' (%d)\n", cmdname, oname, rc); goto clean; } /* Large grants cause ENOSPC to be reported, even though there's space left. We can reduce the grant size by minimizing these */ sprintf(proc_path, "/proc/fs/lustre/osc/%s/max_dirty_mb", oname); rc = write_proc(proc_path, "1"); sprintf(proc_path, "/proc/fs/lustre/osc/%s/max_rpcs_in_flight", oname); rc = write_proc(proc_path, "1"); /* ECHO CLI */ /* attach "echo_client" echoname echouuid */ args[1] = "echo_client"; args[2] = args[3] = ename; rc = jt_lcfg_attach(4, args); if (rc) { fprintf(stderr, "%s: can't attach '%s' (%d)\n", cmdname, ename, rc); if (rc == ENODEV) fprintf(stderr, "%s: is the obdecho module loaded?\n", cmdname); goto clean; } /* setup oscname */ args[1] = oname; rc = jt_lcfg_setup(2, args); if (rc) { fprintf(stderr, "%s: can't setup '%s' (%d)\n", cmdname, ename, rc); goto clean; } args[1] = ename; rc = jt_obd_device(2, args); if (rc) { fprintf(stderr, "%s: can't set device '%s' (%d)\n", cmdname, ename, rc); goto clean; } if (!rc) *dev = jt_obd_get_device(); pthread_mutex_unlock(&m_config); return rc; clean: pthread_mutex_unlock(&m_config); cleanup(ename, 1); cleanup(oname, 1); return rc; }
int kernel_setup(int setup) { int rc; if(setup) { if(export_table < 0) export_table = RT_TABLE_MAIN; if(import_table < 0) import_table = RT_TABLE_MAIN; dgram_socket = socket(PF_INET, SOCK_DGRAM, 0); if(dgram_socket < 0) return -1; rc = netlink_socket(&nl_command, 0); if(rc < 0) { perror("netlink_socket(0)"); return -1; } nl_setup = 1; old_forwarding = read_proc("/proc/sys/net/ipv6/conf/all/forwarding"); if(old_forwarding < 0) { perror("Couldn't read forwarding knob."); return -1; } rc = write_proc("/proc/sys/net/ipv6/conf/all/forwarding", 1); if(rc < 0) { perror("Couldn't write forwarding knob."); return -1; } old_ipv4_forwarding = read_proc("/proc/sys/net/ipv4/conf/all/forwarding"); if(old_ipv4_forwarding < 0) { perror("Couldn't read IPv4 forwarding knob."); return -1; } rc = write_proc("/proc/sys/net/ipv4/conf/all/forwarding", 1); if(rc < 0) { perror("Couldn't write IPv4 forwarding knob."); return -1; } old_accept_redirects = read_proc("/proc/sys/net/ipv6/conf/all/accept_redirects"); if(old_accept_redirects < 0) { perror("Couldn't read accept_redirects knob."); return -1; } rc = write_proc("/proc/sys/net/ipv6/conf/all/accept_redirects", 0); if(rc < 0) { perror("Couldn't write accept_redirects knob."); return -1; } old_rp_filter = read_proc("/proc/sys/net/ipv4/conf/all/rp_filter"); if(old_rp_filter < 0) { perror("Couldn't read rp_filter knob."); return -1; } rc = write_proc("/proc/sys/net/ipv4/conf/all/rp_filter", 0); if(rc < 0) { perror("Couldn't write rp_filter knob."); return -1; } return 1; } else { close(dgram_socket); dgram_socket = -1; if(old_forwarding >= 0) { rc = write_proc("/proc/sys/net/ipv6/conf/all/forwarding", old_forwarding); if(rc < 0) { perror("Couldn't write forwarding knob.\n"); return -1; } } if(old_ipv4_forwarding >= 0) { rc = write_proc("/proc/sys/net/ipv4/conf/all/forwarding", old_ipv4_forwarding); if(rc < 0) { perror("Couldn't write IPv4 forwarding knob.\n"); return -1; } } if(old_accept_redirects >= 0) { rc = write_proc("/proc/sys/net/ipv6/conf/all/accept_redirects", old_accept_redirects); if(rc < 0) { perror("Couldn't write accept_redirects knob.\n"); return -1; } } if(old_rp_filter >= 0) { rc = write_proc("/proc/sys/net/ipv4/conf/all/rp_filter", old_rp_filter); if(rc < 0) { perror("Couldn't write rp_filter knob.\n"); return -1; } } close(nl_command.sock); nl_command.sock = -1; nl_setup = 0; return 1; } }