Sponsored Content
Top Forums Programming AIX calling WINSOCK during e-mail - normal? Post 302490281 by Corona688 on Monday 24th of January 2011 12:41:18 PM
Old 01-24-2011
Okay, so the second parameter is the port number, or service name, in the form of a character string.

Not all mail servers have the same port, I'm not sure it's safe to ignore it. Never understand why people still mess with strtol for short ints when they've got scanf. This code should do the job:

Code:
    if(service == NULL)
        return(ERR_CANT_RESOLVE_SERVICE);

    // We read it in as local order!
    if(sscanf(service, "%d", &portno) == 1);
    else if(s = getservbyname(service, "tcp"))
      portno=htons(s->s_port); // Convert from network to LOCAL order!
    else
      return(ERR_CANT_RESOLVE_SERVICE);

You need a 'struct servent *s;' up in the group of variables at the top. You'll need <stdio.h>, which I give good odds that you've included already. And you'll need to stop manually setting it to 25 of course. The htons() is needed since s->s_port is already swapped for you, and you do swapping below too, we just want it as a normal int here...

I tested it on service strings like "telnet", and arbitrary ports like "8888".

---------- Post updated at 11:41 AM ---------- Previous update was at 11:00 AM ----------

Quote:
Originally Posted by ctote
Oh, also - I've renamed all occurrences of the_socket to sockfd (including the class definition). Should I take out the declaration of sockfd at the beginning of get_connected() ?
Gack... I wouldn't have reccomended doing that. Before, the_socket would never have been changed. With the one change I suggested, it would never have been changed unless you knew for a fact that sockfd was valid. Now, it will never change because the local variable's the same name. Get rid of the local definition and it'll change all the time, potentially getting left at invalid values somewhere inbetween.

Just the one line the_socket=sockfd; right at the bottom of the connection function would have done without altering all your connection code.
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. AIX

Calling All Aix Experts

I am new to the world of AIX. I want to get certified in AIX and learn it but fast. with in 3 months Could you give me some advise of a good site that with teach you or a bootcamp that is reasonable. I am really in need I am in atlanta (0 Replies)
Discussion started by: Courtney3216
0 Replies

2. AIX

To find RAM Size in AIX as normal user?

Hi, Am jus trying to find the Total RAM Size of a AIX m/c (in MB)..svmon works perfectly for a superuser...But i want to achive this as a normal user...Please help me out with correct command.. Best Regards, Muthukumaran.M (3 Replies)
Discussion started by: muthukumaran13
3 Replies

3. AIX

Normal User Unable to Login Through AIX CDE

When we as normal user try to login, the session startup terminates and we are presented with the login screen.The root user is able to login without any problem.I can log in to the Aix server as normal user through telnet & using xmanager but not directly through server terminal .The Aix version... (1 Reply)
Discussion started by: ranadeep
1 Replies

4. UNIX for Dummies Questions & Answers

Forwarding Mail in AIX 5.3

Hello everyone, I am trying to create a forwarding scenario, and I do not seem to get it right! I created a .forward file in the directory where my personal mailbox resides. In the file is the full address to deliver email to ... yet the emails do not seem to get forwarded. Is there something... (3 Replies)
Discussion started by: gio001
3 Replies

5. UNIX for Advanced & Expert Users

Oracle (11gr2) calling unix commands (aix)

I have an Oracle database running on AIX, and I have a procedure that is calling OS commands from an oracle (and it's not working anymore)... so, there was an Java stored proc in Oracle CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED COMMON."Host" as import java.io.*; public class Host {... (1 Reply)
Discussion started by: bongo
1 Replies

6. Shell Programming and Scripting

Calling SQL script from ksh job and send mail on some error.

Hi, I am trying to call sql script from ksh job with parameters.The parameters passed from ksh job will be used in SELECT query in sql file to SPOOL the data in extract file.My questions are: 1) How to call a sql script from ksh job with parameters? 2) How to use the parameter in sql file to... (1 Reply)
Discussion started by: anil029
1 Replies

7. Shell Programming and Scripting

AIX mail notification

plzzz help me, I want to send emails for exchange group members when the used file-system % gets more than 90%, this notification must include df -g, netstat -i,and errpt with the hostname thx in advance (0 Replies)
Discussion started by: majd_ece
0 Replies

8. Shell Programming and Scripting

Send mail from AIX 7.1

Hi, My OS version is AIX 7.1. I am trying to send an email with a file to my mail address. sendmail or uuencode does not work. Can someone give me the correct format ? I use: uuencode <file name> | mail -s "subject" emailaddress Thanks Use code tags, thanks. (3 Replies)
Discussion started by: Nagesh_1985
3 Replies

9. Shell Programming and Scripting

AIX : Need to convert UNIX Timestamp to normal timestamp

Hello , I am working on AIX. I have to convert Unix timestamp to normal timestamp. Below is the file. The Unix timestamp will always be preceded by EFFECTIVE_TIME as first field as shown and there could be multiple EFFECTIVE_TIME in the file : 3.txt Contents of... (6 Replies)
Discussion started by: rahul2662
6 Replies

10. AIX

Unable to set ACLs on sulog - need to grant read permission to a normal user on AIX 6.1

Hi, I need to grant read permission to a normal user on sulog file on AIX 6.1. As root I did acledit sulog and aclget shows "extended permissions" as "enabled" and normal user "splunk" has read permissions. When I try to access sulog as splunk user it won't allow and aclget for splunk user... (6 Replies)
Discussion started by: prvnrk
6 Replies
GETSERVENT(3)						     Linux Programmer's Manual						     GETSERVENT(3)

NAME
getservent, getservbyname, getservbyport, setservent, endservent - get service entry SYNOPSIS
#include <netdb.h> struct servent *getservent(void); struct servent *getservbyname(const char *name, const char *proto); struct servent *getservbyport(int port, const char *proto); void setservent(int stayopen); void endservent(void); DESCRIPTION
The getservent() function reads the next entry from the services database (see services(5)) and returns a servent structure containing the broken-out fields from the entry. A connection is opened to the database if necessary. The getservbyname() function returns a servent structure for the entry from the database that matches the service name using protocol proto. If proto is NULL, any protocol will be matched. A connection is opened to the database if necessary. The getservbyport() function returns a servent structure for the entry from the database that matches the port port (given in network byte order) using protocol proto. If proto is NULL, any protocol will be matched. A connection is opened to the database if necessary. The setservent() function opens a connection to the database, and sets the next entry to the first entry. If stayopen is nonzero, then the connection to the database will not be closed between calls to one of the getserv*() functions. The endservent() function closes the connection to the database. The servent structure is defined in <netdb.h> as follows: struct servent { char *s_name; /* official service name */ char **s_aliases; /* alias list */ int s_port; /* port number */ char *s_proto; /* protocol to use */ } The members of the servent structure are: s_name The official name of the service. s_aliases A NULL-terminated list of alternative names for the service. s_port The port number for the service given in network byte order. s_proto The name of the protocol to use with this service. RETURN VALUE
The getservent(), getservbyname() and getservbyport() functions return a pointer to a statically allocated servent structure, or a NULL pointer if an error occurs or the end of the file is reached. FILES
/etc/services services database file CONFORMING TO
4.3BSD, POSIX.1-2001. SEE ALSO
getnetent(3), getprotoent(3), getservent_r(3), services(5) COLOPHON
This page is part of release 3.44 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. GNU
2008-08-19 GETSERVENT(3)
All times are GMT -4. The time now is 08:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy