if(bind(s, sp, sz) == -1){
perror("Невозможно занять порт"
exit(1);
}
// Переводим сокет в режим ожидания соединения
if(listen(s, 0) == -1){
perror("Невозможно перейти в режим ожидания"
exit(1);
}
//Установим соединение с ораклом
ret=db_connect();
printf("Oracle Connected: %d\n",ret);
while(1){
write(1,"i'm here\n",10);
// Принимаем соединение
if((c = accept(s, cp, &sz)) == -1) {
perror("Ошибка при выполнении accept"
exit(1);
}
//Получим от клиента имя пользователя
while((i=recv(c,buf,BUFSZ,0)) >; 0) {
//write(1,buf,i);
userget = (char*)malloc((i)*sizeof(char));
strncpy(userget,buf,i);
userget='\0';
break;
}
// Преобразуем адрес хоста отправителя в его имя
rhost=gethostbyaddr((char*)(&csa.sin_addr),
sizeof(csa.sin_addr), AF_INET);
if(h_errno){
printf("gethostbyaddr error: %d\n", h_errno);
host=inet_ntoa(csa.sin_addr);
} else {
host=rhost->;h_name;
}
// Получаем строку, содержащую дату и время
if((itime = time(NULL)) < 0){
perror("Не удалось получить время"
exit(1);
}
tstr = ctime(&itime);
// Выводим время поступления запроса,
// адрес и порт отправителя
printf("%s request from %s:%d, user name %s\n", tstr, host, htons(csa.sin_port),userget);
pass =(char*)malloc(30*sizeof(char));
pass =NULL;
pass = db_getpasswd(userget);
if (pass != NULL) {
pass[strlen(pass)]='\0';
printf("assword for user %s is %s\n",userget,pass);
send(c, pass, strlen(pass), 0);
}
else
{
send(c, "error", 5, 0);
}
free(userget);
free(pass);
// Закрываем соединение
close(c);
}
close(c);
close(s);
db_close();
return 1;
}
---------------------========================---------------------
Компилирую так
rm oracle_connector
gcc -o oracle_connector oracle_connector.c -lsqlora8 -lcrypt
---------------------========================---------------------
---------------------========================---------------------
---------------------========================---------------------
Вот кусок который pam модуль
---------------------========================---------------------
#include <security/pam_modules.h>;
#include <stdarg.h>;
#include <time.h>;
#include <pwd.h>;
#include <security/pam_misc.h>;