inetd源代码分析之调试信息对应的源代码
2017-12-12 11:01
447 查看
int
main (int argc, char *argv[], char *envp[])
{
if (pidfile_option)
{
FILE *fp = fopen (pid_file, "w");
if (fp != NULL)
{
if (debug)
fprintf(stderr, "Using pid-file at \"%s\".\n", pid_file);
fprintf (fp, "%d\n", (int) getpid ());
fclose (fp);
}
else
syslog (LOG_CRIT, "can't open %s: %s\n", pid_file,
strerror (errno));
}
signal_set_handler (SIGALRM, retry);
config (0);
第一部分调试信息
Using pid-file at "/var/run/inetd.pid".
void
config (int signo)
{
else if (S_ISREG (statbuf.st_mode))
{
nextconfig (config_files[i]);
}
}
else
{
if (signo == 0)
fprintf (stderr, "inetd: %s, %s\n",
config_files[i], strerror (errno));
else
syslog (LOG_ERR, "%s: %m", config_files[i]);
}
}
第五部分调试信息
inetd: /etc/inetd.d, No such file or directory
void
nextconfig (const char *file)
{
while ((sep = getconfigent (fconfig, file, &line)))
{
if (ISMUX (sep))
{
sep->se_fd = -1;
sep->se_checked = 1;
enter (sep);
}
else
expand_enter (sep);
if (serv_node)
free (sep->se_node);
else
freeconfig (sep);
}
struct servtab *
getconfigent (FILE *fconfig, const char *file, size_t *line)
{
for (i = 0; i < sep->se_argc; i++)
{
sep->se_argv[i] = argv[INETD_SERVER_ARGS + i];
if (debug)
fprintf (stderr, "sep->se_argv[%d] = %s\n",i,sep->se_argv[i]);
argv[INETD_SERVER_ARGS + i] = 0;
}
第二部分调试信息:(自己加的)
sep->se_argv[0] = /usr/sbin/tftpd
sep->se_argv[1] = -l
sep->se_argv[2] = /home/ch/tftpboot
sep->se_argv[3] = (null)
int
expand_enter (struct servtab *sep)
{
for (rp = result; rp != NULL; rp = rp->ai_next)
{
memset (&sep->se_ctrladdr, 0, sizeof (sep->se_ctrladdr));
memcpy (&sep->se_ctrladdr, rp->ai_addr, rp->ai_addrlen);
sep->se_addrlen = rp->ai_addrlen;
cp = enter (sep);
servent_setup (cp);
}
struct servtab *
enter (struct servtab *cp)
{
if (debug)
print_service ("ADD ", cp);
第三部分调试信息
/etc/inetd.conf:32: ADD : *:tftp proto=udp, wait=1, max=0, user=nobody group= builtin=no server=/usr/sbin/tcpd
void
servent_setup (struct servtab *sep)
{
if (debug)
fprintf (stderr, "registered %s on %d\n", sep->se_server, sep->se_fd);
第四部分调试信息
registered /usr/sbin/tcpd on 4
main (int argc, char *argv[], char *envp[])
{
if (pidfile_option)
{
FILE *fp = fopen (pid_file, "w");
if (fp != NULL)
{
if (debug)
fprintf(stderr, "Using pid-file at \"%s\".\n", pid_file);
fprintf (fp, "%d\n", (int) getpid ());
fclose (fp);
}
else
syslog (LOG_CRIT, "can't open %s: %s\n", pid_file,
strerror (errno));
}
signal_set_handler (SIGALRM, retry);
config (0);
第一部分调试信息
Using pid-file at "/var/run/inetd.pid".
void
config (int signo)
{
else if (S_ISREG (statbuf.st_mode))
{
nextconfig (config_files[i]);
}
}
else
{
if (signo == 0)
fprintf (stderr, "inetd: %s, %s\n",
config_files[i], strerror (errno));
else
syslog (LOG_ERR, "%s: %m", config_files[i]);
}
}
第五部分调试信息
inetd: /etc/inetd.d, No such file or directory
void
nextconfig (const char *file)
{
while ((sep = getconfigent (fconfig, file, &line)))
{
if (ISMUX (sep))
{
sep->se_fd = -1;
sep->se_checked = 1;
enter (sep);
}
else
expand_enter (sep);
if (serv_node)
free (sep->se_node);
else
freeconfig (sep);
}
struct servtab *
getconfigent (FILE *fconfig, const char *file, size_t *line)
{
for (i = 0; i < sep->se_argc; i++)
{
sep->se_argv[i] = argv[INETD_SERVER_ARGS + i];
if (debug)
fprintf (stderr, "sep->se_argv[%d] = %s\n",i,sep->se_argv[i]);
argv[INETD_SERVER_ARGS + i] = 0;
}
第二部分调试信息:(自己加的)
sep->se_argv[0] = /usr/sbin/tftpd
sep->se_argv[1] = -l
sep->se_argv[2] = /home/ch/tftpboot
sep->se_argv[3] = (null)
int
expand_enter (struct servtab *sep)
{
for (rp = result; rp != NULL; rp = rp->ai_next)
{
memset (&sep->se_ctrladdr, 0, sizeof (sep->se_ctrladdr));
memcpy (&sep->se_ctrladdr, rp->ai_addr, rp->ai_addrlen);
sep->se_addrlen = rp->ai_addrlen;
cp = enter (sep);
servent_setup (cp);
}
struct servtab *
enter (struct servtab *cp)
{
if (debug)
print_service ("ADD ", cp);
第三部分调试信息
/etc/inetd.conf:32: ADD : *:tftp proto=udp, wait=1, max=0, user=nobody group= builtin=no server=/usr/sbin/tcpd
void
servent_setup (struct servtab *sep)
{
if (debug)
fprintf (stderr, "registered %s on %d\n", sep->se_server, sep->se_fd);
第四部分调试信息
registered /usr/sbin/tcpd on 4
相关文章推荐
- 《信息安全系统设计基础》代码调试分析
- 调试iOS 已经发布代码 Crash 文件分析出出错对应代码
- linux kernel Oops调试信息分析 异常调试
- Tomcat7调试运行环境搭建与源代码分析入门
- linux 3.4.10 内核内存管理源代码分析1:源代码阅读工具,编译及调试
- linux驱动调试--段错误之oops信息分析
- 如何给Delphi的CPU调试窗口,增加对应源代码
- MySQL数据库InnoDB存储引擎源代码调试跟踪分析
- linux驱动调试--段错误之栈信息分析
- Android调试之tombstone信息的分析
- Makefile里加入调试信息实现C源码对应
- Android调试之tombstone信息的分析
- linux驱动调试--段错误之oops信息分析
- FFmpeg与libx264 x264接口对应关系源代码分析
- 逆向分析objc,所有类的信息都能在动态调试中获取。
- Tomcat7调试运行环境搭建与源代码分析入门
- linux驱动调试--段错误之栈信息分析
- Tomcat7调试运行环境搭建与源代码分析入门
- linux 3.4.10 内核内存管理源代码分析1:源代码阅读工具,编译及调试
- 通过地址获取对应的源代码信息收藏