summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/finish-install.xsetup
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/finish-install.xsetup')
-rwxr-xr-xperl-install/standalone/finish-install.xsetup38
1 files changed, 38 insertions, 0 deletions
diff --git a/perl-install/standalone/finish-install.xsetup b/perl-install/standalone/finish-install.xsetup
new file mode 100755
index 000000000..740c7814c
--- /dev/null
+++ b/perl-install/standalone/finish-install.xsetup
@@ -0,0 +1,38 @@
+#!/bin/sh
+# (c) 2005-2008 Mandriva SA
+
+# to be sourced
+if [ -f /etc/sysconfig/finish-install -a -x /usr/sbin/finish-install ]; then
+ . /etc/sysconfig/finish-install
+ if [ "$FINISH_INSTALL" = yes ]; then
+ if [ -r /etc/locale.conf -o -r /etc/sysconfig/i18n ]; then
+ unset LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
+ LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
+ LC_IDENTIFICATION
+ if [ -r /etc/locale.conf ]; then
+ . /etc/locale.conf
+ else
+ . /etc/sysconfig/i18n
+ fi
+ export LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
+ LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
+ LC_IDENTIFICATION
+ fi
+ . /etc/profile.d/10mageia-release.sh
+ xsetroot -cursor_name left_ptr
+ /usr/sbin/finish-install
+ if [ -r /etc/locale.conf -o -r /etc/sysconfig/i18n ]; then
+ unset LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
+ LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
+ LC_IDENTIFICATION
+ if [ -r /etc/locale.conf ]; then
+ . /etc/locale.conf
+ else
+ . /etc/sysconfig/i18n
+ fi
+ export LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY \
+ LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
+ LC_IDENTIFICATION
+ fi
+ fi
+fi
FD_ZERO(&emptySet);
- FD_ZERO(&readSet);
- FD_SET(sock, &readSet);
-
- timeout.tv_sec = TIMEOUT_SECS;
- timeout.tv_usec = 0;
-
- rc = select(sock + 1, &readSet, &emptySet, &emptySet, &timeout);
- if (rc < 1) {
- if (rc==0)
- return FTPERR_BAD_SERVER_RESPONSE;
- else
- rc = FTPERR_UNKNOWN;
- } else
- rc = 0;
+ polls.fd = sock;
+ polls.events = POLLIN;
+ if (poll(&polls, 1, TIMEOUT_SECS*1000) != 1)
+ return FTPERR_BAD_SERVER_RESPONSE;
bytesRead = read(sock, buf + bufLength, sizeof(buf) - bufLength - 1);
@@ -125,7 +114,7 @@ static int ftp_check_response(int sock, char ** str)
} else {
bufLength = 0;
}
- } while (doesContinue && !rc);
+ } while (doesContinue);
if (*errorCode == '4' || *errorCode == '5') {
if (!strncmp(errorCode, "550", 3)) {
@@ -170,10 +159,13 @@ static int get_host_address(const char * host, struct in_addr * address)
return FTPERR_BAD_HOST_ADDR;
}
} else {
- if (mygethostbyname((char *) host, address)) {
- errno = h_errno;
+ struct hostent * h;
+ h = mygethostbyname(host);
+ if (h && h->h_addr_list && (h->h_addr_list)[0]) {
+ *address = *((struct in_addr *) (h->h_addr_list)[0]);
+ log_message("is-at: %s", inet_ntoa(*address));
+ } else
return FTPERR_BAD_HOSTNAME;
- }
}
return 0;
@@ -394,7 +386,6 @@ int ftp_start_download(int sock, char * remotename, int * size)
log_message("FTP: could not get filesize (trying to continue)");
*size = 0;
}
-
return ftp_data_command(sock, "RETR", remotename);
}
@@ -411,15 +402,14 @@ int ftp_end_data_command(int sock)
int http_download_file(char * hostname, char * remotename, int * size)
{
char * buf;
- struct timeval timeout;
char headers[4096];
char * nextChar = headers;
int checkedCode;
struct in_addr serverAddress;
+ struct pollfd polls;
int sock;
int rc;
struct sockaddr_in destPort;
- fd_set readSet;
char * header_content_length = "Content-Length: ";
if ((rc = get_host_address(hostname, &serverAddress))) return rc;
@@ -450,13 +440,10 @@ int http_download_file(char * hostname, char * remotename, int * size)
*nextChar = '\0';
checkedCode = 0;
while (!strstr(headers, "\r\n\r\n")) {
- FD_ZERO(&readSet);
- FD_SET(sock, &readSet);
+ polls.fd = sock;
+ polls.events = POLLIN;
+ rc = poll(&polls, 1, TIMEOUT_SECS*1000);
- timeout.tv_sec = TIMEOUT_SECS;
- timeout.tv_usec = 0;
-
- rc = select(sock + 1, &readSet, NULL, NULL, &timeout);
if (rc == 0) {
close(sock);
return FTPERR_SERVER_TIMEOUT;