⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netconfig.h~

📁 LINUX 2.4下面使用GTK书写的一个系统控制面板
💻 H~
📖 第 1 页 / 共 2 页
字号:
#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>#include "mmlib.h"  GtkWidget *netcfg_entry_hostname;  GtkWidget *netcfg_checkbutton_dhcp;  GtkWidget *netcfg_entry_ipv4_addr;  GtkWidget *netcfg_entry_ipv4_mask;  GtkWidget *netcfg_entry_ipv4_gateway;  GtkWidget *netcfg_entry_ipv4_dns;  GtkWidget *netcfg_entry_ipv6_addr;  GtkWidget *netcfg_entry_ipv6_route;  static char net_cfgfile_data[9][80];// not completeint netcfg_valid_check(void){	int ret=0;       if (ipadr_check((char*)gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_addr)))!=0) 	    	{ msg_dialog(GTK_MESSAGE_ERROR,_("IP地址输入不合法")); 			ret=-1;		 }	if (ipadr_check((char*)gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_mask)))!=0) 	    	 { msg_dialog(GTK_MESSAGE_ERROR,_("子网掩码输入不合法"));		  ret=-1;		  } 	if (ipadr_check((char*)gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_gateway)))!=0) 	    	 { msg_dialog(GTK_MESSAGE_ERROR,_("网关地址输入不合法"));		  ret=-1;		  }	if (ipadr_check((char*)gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_dns)))!=0)   	  	 { msg_dialog(GTK_MESSAGE_ERROR,_("DNS输入不合法"));		  ret=-1;		 }	if (ipv6adr_check((char*)gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv6_addr)))!=0)     	 	{msg_dialog(GTK_MESSAGE_ERROR,_("IPV6地址输入不合法"));		ret=-1;		}	if (ipv6adr_check((char*)gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv6_route)))!=0)     	 	{msg_dialog(GTK_MESSAGE_ERROR,_("IP6路由输入不合法"));		ret=-1;		}    return ret;	  }// save_buttonint netcfg_exec_save(GtkWidget *button, GtkWidget *window){  if (netcfg_valid_check()==0)	{  if (netcfg_exec() ==0 )		{  if (netcfg_save("/.admin/network.conf")==0){			msg_dialog(GTK_MESSAGE_INFO, _("okokokokokokok\n"));			mm_widget_destroy(NULL, window);		    }else		    	return -1;		}	    else	    	return -1;	}    else	return -1;			}int netcfg_exec(void){  // if( execl("/etc/rc.d/01","01","reset",0)!=-1)      return 0;}int netcfg_save(const char* file){	int fd;	int i, ret = 0;	if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (netcfg_checkbutton_dhcp)))	strcpy(strpbrk(net_cfgfile_data[0], "=")+1 , "TRUE");	else	strcpy(strpbrk(net_cfgfile_data[0], "=")+1 , "FALSE");	strcpy(strpbrk(net_cfgfile_data[1], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_hostname)));	strcpy(strpbrk(net_cfgfile_data[2], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_addr)));	strcpy(strpbrk(net_cfgfile_data[3], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_mask)));		strcpy(strpbrk(net_cfgfile_data[4], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_gateway)));		strcpy(strpbrk(net_cfgfile_data[5], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv4_dns)));	strcpy(strpbrk(net_cfgfile_data[6], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv6_addr)));	strcpy(strpbrk(net_cfgfile_data[7], "=")+1 , 				gtk_entry_get_text(GTK_ENTRY(netcfg_entry_ipv6_route)));			if((fd = open (file, O_WRONLY|O_TRUNC)) == -1){		ret = -1;		msg_dialog(GTK_MESSAGE_ERROR,_("打开文件失败"));	}else{		for (i = 0; i < 8; i++){			write(fd, net_cfgfile_data[i], strlen(net_cfgfile_data[i]));			write(fd, "\n", 1);		}		close(fd);		}																return ret;	   return 0;}int netcfg_read(const char *file, char cfgdata[][80]){	int fd;	int offset = 0;	char *p = NULL;	char *q = NULL;	int len, ret = 0;	ssize_t n;	gchar buffer[400];		if((fd = open(file,O_RDONLY)) == -1){		ret = -1;	}else{			while ((n = read(fd, buffer + offset, 400)) > 0){			offset += n;		}		close(fd);			if (n == -1){			ret = -1;		}else{			n = 0;				p = q = buffer;			offset = 0;			while ((p = strpbrk(p, "=")) && n < 8){				p = strpbrk(p, " \n");				len = p - q;				p = strpbrk(p, "\n");				p++;				memcpy (cfgdata[n], q, len);				cfgdata[n++][len] = '\0';				q = p;			}		}	}	return ret;}int netcfg_check_button(GtkWidget *checkbutton,                            GtkWidget *entry ){   	gtk_entry_set_editable (GTK_ENTRY(netcfg_entry_ipv4_addr),    						 !GTK_TOGGLE_BUTTON (netcfg_checkbutton_dhcp)->active);   	gtk_entry_set_editable (GTK_ENTRY(netcfg_entry_ipv4_mask),    					!GTK_TOGGLE_BUTTON (netcfg_checkbutton_dhcp)->active);		   	gtk_entry_set_editable (GTK_ENTRY(netcfg_entry_ipv4_gateway),    						 !GTK_TOGGLE_BUTTON (netcfg_checkbutton_dhcp)->active);   	gtk_entry_set_editable (GTK_ENTRY(netcfg_entry_ipv4_dns),    						 !GTK_TOGGLE_BUTTON (netcfg_checkbutton_dhcp)->active);  		}void create_netcfg_window (void){  GtkWidget *netcfg_window;  GtkWidget *netcfg_vbox1;  GtkWidget *netcfg_hbox1;  GtkWidget *netcfg_label_hostname;  GtkWidget *netcfg_frame_ipv4;  GtkWidget *alignment1;  GtkWidget *netcfg_table_ipv4;  GtkWidget *netcfg_label_ipv4_addr;  GtkWidget *netcfg_label_ipv4_mask;    GtkWidget *netcfg_label_ipv4_gateway;  GtkWidget *netcfg_label_ipv4_dns;  GtkWidget *netcfg_label_frame_ipv4;  GtkWidget *netcfg_frame_ipv6;  GtkWidget *alignment2;  GtkWidget *netcfg_table_ipv6;  GtkWidget *netcfg_label_ipv6_addr;  GtkWidget *netcfg_label_ipv6_route;  GtkWidget *netcfg_label_frame_ipv6;  GtkWidget *netcfg_hbuttonbox_bottom;  GtkWidget *netcfg_button_ok;  GtkWidget *netcfg_button_cancel;  gboolean   ischecked;    	  netcfg_read("/.admin/network.conf", net_cfgfile_data);         	if (strcmp(strpbrk(net_cfgfile_data[0], "=")+1,"TRUE") ==0)        ischecked=TRUE;         else        ischecked=FALSE;  netcfg_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  g_return_if_fail(GTK_IS_WINDOW(netcfg_window));  isShow = TRUE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -