Linux-Development-Sys Digest #538, Volume #6     Sat, 27 Mar 99 07:13:58 EST

Contents:
  what is /dev/root ? (Phil Howard)
  G200 Suport.. ("Riacardo")
  no EOF from /dev/ram (Phil Howard)
  Re: I get "too few arguments to function `filp_close'" (Michael Fleming)
  Re: adding a user ([EMAIL PROTECTED])
  Anyone working with ORBit? (Christopher B. Browne)
  Re: Anyone working with ORBit? (Todd Graham Lewis)
  Re: Devloping Linux apps on NT? ("Seyed Razavi")
  Re: Devloping Linux apps on NT? ("Seyed Razavi")
  Re: [Q] Bootable Tape Support Under Linux ([EMAIL PROTECTED])
  Re: How about /dev/web? (Christopher Browne)
  Re: How about /dev/web? (Bill Anderson)
  CD-ROM (Patterson Family)
  Re: [Q] Bootable Tape Support Under Linux (Juergen Heinzl)
  Idea:  Make a seperate "i686" tree for Redhat Linux 6.0 ("Idea Man")
  Re: RS485 & Linux: Must toggle DTR quickly (Timothy Wall)

----------------------------------------------------------------------------

From: [EMAIL PROTECTED] (Phil Howard)
Subject: what is /dev/root ?
Date: Sat, 27 Mar 1999 00:46:41 GMT

I see:

| root@charon:/root 482> cat /proc/mounts
| /dev/root / ext2 rw,sync 0 0
| /proc /proc proc rw 0 0
| /dev/hda5 /tmp ext2 rw 0 0
| /dev/hda6 /var ext2 rw,sync 0 0
| /dev/hda8 /usr ext2 rw 0 0
| /dev/hdb1 /home ext2 rw,nosuid 0 0
| root@charon:/root 483>

yet:

| root@charon:/root 483> cat /etc/mtab
| /dev/hda1 / ext2 rw,sync 0 0
| none /proc proc rw 0 0
| /dev/hda5 /tmp ext2 rw 0 0
| /dev/hda6 /var ext2 rw,sync 0 0
| /dev/hda8 /usr ext2 rw 0 0
| /dev/hdb1 /home ext2 rw,nosuid 0 0
| root@charon:/root 484>

What does it mean to use /dev/root like this?  I'm assuming there's
no name because the kernel mounted it internally with no device name.

There's no actual filesystem object called /dev/root.  What would be
the impact of having one?

The reason I'm looking at this is because I hacking the bootup system
initialization.  One of the steps I need to do is to make sure that
the /etc/mtab file is correctly setup to initial conditions.  Since
I'm mounting a 2nd device (searching for CDROM and mounting as /usr)
even before /sbin/init starts, I figured it might need to be included
in /etc/mtab.

My current solution is to do this in /etc/rc.d/rc.sysinit:

>/etc/mtab
mount -f /
mount -f /usr
mount -f /proc

which is pretty much how any system does it.  I just don't know if it
is truly adequate with the addition of the /usr filesystem.  But I would
think it is.  With / being ramdisk and /usr being CDROM, it's not like
I'm going to have problems with filesystems I failed to unmount.

--
Phil Howard           KA9WGN
[EMAIL PROTECTED] [EMAIL PROTECTED]

------------------------------

From: "Riacardo" <[EMAIL PROTECTED]>
Subject: G200 Suport..
Date: Sat, 27 Mar 1999 00:04:40 -0000

 I am hanving trouble fiding  suport or drivers for my new Matrox G200 AGP
on Red Hat 5.2.

Can anybody help me ????


Ricardo



------------------------------

From: [EMAIL PROTECTED] (Phil Howard)
Subject: no EOF from /dev/ram
Date: Sat, 27 Mar 1999 01:12:26 GMT

I realize that /dev/ram is an expandable device.  But then again,
regular files are expandable, too.  When I read /dev/ram sequentially,
I don't get EOF at the end.  Instead, I get I/O error.

Is this a mistake or a feature?  If feature, what good is it?

Actually, what I'd like to see is a ram-filesystem.  This would be
a filesystem that itself resides in ram (not formattable on a device)
and can be expanded as the file contents need, until it reaches
configured or physical limitations.

--
Phil Howard           KA9WGN
[EMAIL PROTECTED] [EMAIL PROTECTED]

------------------------------

From: [EMAIL PROTECTED] (Michael Fleming)
Subject: Re: I get "too few arguments to function `filp_close'"
Date: 27 Mar 1999 00:42:06 GMT

=====BEGIN PGP SIGNED MESSAGE=====
Hash: SHA1

I'm glad Silviu Chitroceanu <[EMAIL PROTECTED]> said
this and not me..
> Hi,
> 
> I'm trying to compile 2.2.4 kernel on a Pentium 233MHz,
> RedHat 5.2.  I can compile 2.2.3 kernel and everything seems
> to be OK with 2.2.3.
> 
> With 2.2.4 kernel I do the following:
> 1. make mrproper; make xconfig; make dep;make clean;
> 2. make zImage.  I get the following error message:
> "acct.c: In function `sys_acct':
> acct.c:197: too few arguments to function `filp_close'
> acct.c:203: too few arguments to function `filp_close'
> make[2]: *** [acct.o] Error 1
> make[2]: Leaving directory `/usr/src/linux-2.2.4/kernel'
> make[1]: *** [first_rule] Error 2
> make[1]: Leaving directory `/usr/src/linux-2.2.4/kernel'
> make: *** [_dir_kernel] Error 2"

Look for lines that say

flip_close(file);

and change them to

flip_close(file, NULL);

in kernel/acct.c
 
> Can anyone help me?

That worked for me - there's a patch for that file, and Alan Cox's
2.2.4-ac1 patch fixes it too.

 
> Thank you very much.

HIH,

> Silviu Chitroceanu

Michael Fleming.

- -- 
Michael Fleming -=(UDIC)=- Despam the Planet
WWW: http://www.powerup.com.au/~mfleming/ | PGP: OEF8E582
Bill Gates isn't the Devil - Satan made sure Hell worked
before he opened it to the damned...

=====BEGIN PGP SIGNATURE=====
Version: PGPfreeware 5.0i for non-commercial use
Charset: noconv

iQA/AwUBNvwpWn66PsYO+OWCEQKPCgCg9ttXVFGSpk3drqtuz8kWI5QToUIAn1+x
l4sOymrgGjObZApjsEMeq306
=ERNB
=====END PGP SIGNATURE=====

------------------------------

From: [EMAIL PROTECTED]
Crossposted-To: comp.unix.programmer,comp.programming,comp.lang.c
Subject: Re: adding a user
Date: Sat, 27 Mar 1999 02:13:26 GMT

In article <[EMAIL PROTECTED]>,
  Aaron Faby <[EMAIL PROTECTED]> wrote:
>
> --------------043C3180F62756CBE2982DBE
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
>
> Hello!
>
> I need to write a program that can add a user and add the users password
>
> all in one shot (by adding login and pass as arguements to the program
> when
> invoking). Such as: addaccount test testpass
>
> This is to be done on a linux system.
>
> How do I encrypt the password to add to the passwd file? Is there any
> documentation on this? Thanks!

I am currently putting together a package that does this and more
to run on linux, open source of course, if you would like to see
Where I am up to on this feel free to email me at [EMAIL PROTECTED]

The program when finished will add users to the system and add email
using qmail and the user to a RADIUS users file. Following that the
program will run a billing script to read from the RADIUS detail file
and do monthly accounting

Kevin Waterson

============= Posted via Deja News, The Discussion Network ============
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    

------------------------------

From: [EMAIL PROTECTED] (Christopher B. Browne)
Crossposted-To: comp.object.corba
Subject: Anyone working with ORBit?
Reply-To: [EMAIL PROTECTED]
Date: Sat, 27 Mar 1999 02:57:26 GMT

I'm trying to get some ORBit code working; toy example to do some "proof of
concept" for a GNU ERP project.  (Note: Followups are set to
comp.os.linux.development...)

The documentation at the GNOME web site suffers from the problem that they
forgot to escape "&" symbols when writing the DocBook-based docs; this has
the unfortunate effect that any time they reference a pointer, parts of
variable names disappear.  Which means that the sample programs de-complete
themselves.  Bad thing.

My sample code looks something like the following...  It compiles, but
promptly core-dumps.

/* Client #1: Cheque Issuer */
#include "stdio.h"
#include "orb/orbit.h"
#include "drcr.h"
#include "string.h"
#include "stdlib.h"
#include "signal.h"

float balance;
int txns;

sample drcr_client = CORBA_OBJECT_NIL;

static void do_sample_issue_cheque (PortableServer_Servant servant,
CORBA_char * id,   CORBA_char * date,   CORBA_char *
payee,   CORBA_char * account,   CORBA_float cost,
CORBA_Environment * ev);

PortableServer_ServantBase__epv base_epv = {
  NULL, NULL, NULL
};

POA_sample__epv sample_epv = {NULL, do_sample_issue_cheque };
POA_sample__vepv poa_sample_vepv = { &base_epv, &sample_epv};
POA_sample poa_sample_servant = {NULL, &poa_sample_vepv};

int main(int argc, char *argv[]) 
{
  PortableServer_ObjectId objid = {0, sizeof("mysampleString"),
                                   "mysampleString"};  
PortableServer_POA poa;
 CORBA_Environment ev;
  char *retval;
  CORBA_ORB orb;
  FILE *ofp;

  signal(SIGINT, exit);
  signal(SIGTERM, exit);
  
  CORBA_exception_init(&ev);
  orb = CORBA_ORB_init(&argc, argv, "orbit-local-orb", &ev); 
  
  /*  POA_sample__init(&poa_sample_servant, &ev); */

  poa = (PortableServer_POA) 
    CORBA_ORB_resolve_initial_references
    (orb, "RootPOA", &ev);  

  PortableServer_POAManager_activate
    (PortableServer_POA__get_the_POAManager
     (poa, &ev), &ev);
  
  PortableServer_POA_activate_object_with_id
    (poa, &objid, &poa_sample_servant, &ev);

  drcr_client = PortableServer_POA_servant_to_reference
    (poa, &poa_sample_servant, &ev);
  
  if (!drcr_client) {
    printf("Cannot get objref\n");
    return 1;
  }

  retval = CORBA_ORB_object_to_string(orb, drcr_client, &ev);
  
  ofp = fopen("sample.ior", "w");
  fprintf(ofp, "%s", retval);
  fclose(ofp);
  CORBA_free(retval);

  fprintf(stdout, "Wrote out sample.ior with the IOR of this server.\nNow waiting for 
requests...\n");
  fflush(stdout);
  CORBA_ORB_run(orb, &ev);

  return 0;
}

static void do_sample_issue_cheque 
    (PortableServer_Servant servant, 
     CORBA_char * id,   
     CORBA_char * date,   
     CORBA_char * payee,   
     CORBA_char * account,   
     CORBA_float cost, 
     CORBA_Environment * ev) 

{
  txns++;
  balance += cost;
  printf("Got Cheque: %10s %10s %10s %10s %8.2f\n",
         id, date, payee, account, cost);
  printf("Totals: %04d %8.2f\n", txns, balance);
}

Has anyone some relatively trivial examples of ORBit-based server code? Once
I get such a sample working, I'd be glad to comment it contribute it to the
documentation...

-- 
Those who do not understand Unix are condemned to reinvent it, poorly.  
-- Henry Spencer          <http://www.hex.net/~cbbrowne/lsf.html>
[EMAIL PROTECTED] - "What have you contributed to free software today?..."

------------------------------

From: Todd Graham Lewis <[EMAIL PROTECTED]>
Subject: Re: Anyone working with ORBit?
Date: Fri, 26 Mar 1999 22:30:53 -0500

On Sat, 27 Mar 1999, Christopher B. Browne wrote:

> I'm trying to get some ORBit code working; toy example to do some "proof of
> concept" for a GNU ERP project.  (Note: Followups are set to
> comp.os.linux.development...)
> 
> The documentation at the GNOME web site suffers from the problem that they
> forgot to escape "&" symbols when writing the DocBook-based docs; this has
> the unfortunate effect that any time they reference a pointer, parts of
> variable names disappear.  Which means that the sample programs de-complete
> themselves.  Bad thing.

Yeah, that bothered me, too.  ORBit comes with a test/ subdir which includes
most of the examples in the docs.

> My sample code looks something like the following...  It compiles, but
> promptly core-dumps.

You're a CORBA newbie, right?  Don't worry, I am too.  You need to include
the .idl file; the code for your client and server would be nice too.

Once I started groking how CORBA works, getting my ORBit proggies to
work was very easy.  I started out by copying the examples in ORBit/test/
and then reading the various CORBA specs when I wanted to modify them
in some way.

Shoot me your code and I'll be happy to give you some pointers.

--
Todd Graham Lewis            32°49'N,83°36'W         (800) 719-4664, x22804
******Linux******         MindSpring Enterprises      [EMAIL PROTECTED]

"A pint of sweat will save a gallon of blood."          -- George S. Patton


------------------------------

From: "Seyed Razavi" <[EMAIL PROTECTED]>
Subject: Re: Devloping Linux apps on NT?
Date: Fri, 26 Mar 1999 15:59:15 -0000

Nope its not.  Try using VI or VIM and watch it cack out.

Best use VNC which works a treat.

--
Cheers,

Seyed Razavi
[EMAIL PROTECTED]

<r d t@c s.q u e e n s u.c a (Bob Tennent)> wrote in message
news:7dej9j$a64$[EMAIL PROTECTED]...
> On Thu, 25 Mar 1999 17:21:43 -0600, Bill Zimmerly wrote:
>  >> Without sounding like treason can anyone provide any useful advice on
how
>  >i
>  >> can go about developing linux apps on a NT workstation?
>  >
>  >Sure, a few tips...
>  >
>  >[Sarcastic Mode On]
>  >
>  >Put a linux box right next to it on the hub and use NT's "Telnet"
program!
>  >
>  >[Sarcastic Mode Off]
>  >
> I hope the telnet program on NT is better than the junk they supply on
> Windows 95.  They can't even get telnet right.
>
> Bob T.



------------------------------

From: "Seyed Razavi" <[EMAIL PROTECTED]>
Subject: Re: Devloping Linux apps on NT?
Date: Fri, 26 Mar 1999 16:02:27 -0000

Hi,

> > Without sounding like treason can anyone provide any useful advice on
> > how i can go about developing linux apps on a NT workstation?
>

It is for a PC at home which for logistical reasons* I cannot run as a Linux
machine

* 1.  Games. 2. Girlfriend.  3. ISDN card = nightmare to configure.

> The Cygwin32 tools (allegedly; I've never tried them) recreate a
> POSIX-like environment for compiling and running things in Win32.  So
> I'm sure you could accomplish at least *some* development of Unix
> programs by compiling them for Cygwin32.  But doing that would be in my
> opinion somewhat pointless, since it would be trying to recreate a
> Unix-like environment ... just get the real thing.
>

I don't have a choice.  Any idea where I can get Cygwin32?

> If what you really want is the use of a specific text editor or
> something, use Samba to share the files and telnet to compile them.
> (Or the Cygwin32 tools as a cross-compiler-suite to the Linux target --
> I believe this is possible.)

or VMWare I have been led to believe.

--
Cheers,

Seyed Razavi
[EMAIL PROTECTED]




------------------------------

From: [EMAIL PROTECTED]
Crossposted-To: comp.os.linux.hardware,comp.os.linux.development.apps
Subject: Re: [Q] Bootable Tape Support Under Linux
Date: 26 Mar 1999 00:29:28 GMT

In comp.os.linux.development.system
        Michael Peterson <[EMAIL PROTECTED]> wrote:
>
> I'm very interested in whether support exists (or is planned to exist)
> for bootable tape (assuming SCSI tape).
>

RedHat for Sparc can boot from tape, but you cannot install the RPMS
from tape.

http://www.redhat.com/support/docs/rhl/sparc/rh51-errata-sparc.html

In addition to booting from tape, Ultrapenguin-1.1.9 is working on a
method to install from tape.

http://ultra.linux.cz

-- 
Roger J. Allen                Rush-Presbyterian-St. Luke's Medical Center
System Administrator                                   Chicago,  IL   USA
Surgical Information Systems                       Voice:  (312)-942-4825
Internet: [EMAIL PROTECTED]                         FAX:  (312)-733-6921

------------------------------

From: [EMAIL PROTECTED] (Christopher Browne)
Subject: Re: How about /dev/web?
Reply-To: [EMAIL PROTECTED]
Date: Fri, 26 Mar 1999 00:44:39 GMT

On 25 Mar 1999 14:39:55 -0500, Alexander Viro <[EMAIL PROTECTED]> wrote:
>In article <[EMAIL PROTECTED]>,
>Mathieu ARNOLD  <[EMAIL PROTECTED]> wrote:
>>Alexander Viro wrote:
>>>         What next, Java in the kernel?
>>
>>the kernel in java :)
>
>vmlinux.el, to mention another monstrosity ;-/

No, no, no.  

vmlinux.scm
-- 
"Catapultam habeo!  Nisi pecuniam omnem mihi dabis, ad caput tuum saxum
immane mittam !!" (I have a catapult!  If you do not pay me the money
you owe me, I will hit you with a big rock !!) 
-- Simon Gornall <[EMAIL PROTECTED]>
[EMAIL PROTECTED] <http://www.ntlug.org/~cbbrowne/oses.html>

------------------------------

From: Bill Anderson <[EMAIL PROTECTED]>
Subject: Re: How about /dev/web?
Date: Fri, 26 Mar 1999 17:08:54 +0000

Thomas Zajic wrote:
> 
> Alexander Viro wrote:
> > In article <XLAK2.5806$[EMAIL PROTECTED]>,
> > Christopher Browne <[EMAIL PROTECTED]> wrote:
> > >On 25 Mar 1999 14:39:55 -0500, Alexander Viro <[EMAIL PROTECTED]> wrote:
> > >>In article <[EMAIL PROTECTED]>,
> > >>Mathieu ARNOLD  <[EMAIL PROTECTED]> wrote:
> > >>>Alexander Viro wrote:
> > >>>>         What next, Java in the kernel?
> > >>>the kernel in java :)
> > >>vmlinux.el, to mention another monstrosity ;-/
> > >No, no, no.
> > >vmlinux.scm
> > I see your vmlinux.scm and raise to /etc/mail/vmlinux.cf
> 
> Monstrosity parade, huh? I raise again:
> 
>    C:\Win95\system\VMLinux.VXD
>    C:\Win95\system\VMLinux.dll
>    C:\Win95\command\VMLinux.exe
>    C:\Win95\desktop\VMLinux.exe.lnk
>    C:\Win95\media\The Linux Sound.wav
> 
> ;-)
> 
> Thomas


Pardon me whilst I whip this out:

vmlinuz.ppt

__
Bill Anderson                                   Linux Administrator
MCS-Boise (ARC)                                 [EMAIL PROTECTED]
My opinions are just that; _my_ opinions.

------------------------------

From: Patterson Family <[EMAIL PROTECTED]>
Subject: CD-ROM
Date: Sat, 27 Mar 1999 05:09:58 GMT

Linux...LILO or whatever can't find my CD-ROM drive, and it's not a
choice on the list...I have no idea where to find a module for it.  I
just want to set up Linux and I can't without the CD-ROM.  Anyone know
where to get Adaptec ASPI modules?


Daniel

------------------------------

From: [EMAIL PROTECTED] (Juergen Heinzl)
Crossposted-To: comp.os.linux.hardware,comp.os.linux.development.apps
Subject: Re: [Q] Bootable Tape Support Under Linux
Date: Wed, 24 Mar 1999 22:07:34 GMT

In article <7dba9v$[EMAIL PROTECTED]>, Michael Peterson wrote:
>I'm very interested in whether support exists (or is planned to exist) for
>bootable tape (assuming SCSI tape).

Since the BIOS has something to say about here I am afraid ... no. It
would be nice though, esp. for highend machines but as long as PC' must
be (a) cheap (b) cheap and (c) cheap ... said that already, our HP workstation;
you just switched it off and it would shutdown itself, cool 8)

Cheers,
Juergen

-- 
\ Real name     : Jürgen Heinzl                 \       no flames      /
 \ EMail Private : [EMAIL PROTECTED] \ send money instead /
  \ Phone Private : +44 181-332 0750              \                  /

------------------------------

From: "Idea Man" <[EMAIL PROTECTED]>
Subject: Idea:  Make a seperate "i686" tree for Redhat Linux 6.0
Crossposted-To: 
comp.os.linux.misc,linux.redhat.misc,alt.linux,alt.os.linux,comp.os.linux.hardware
Date: Sat, 27 Mar 1999 06:59:30 GMT

Does anyone else think this would be a good idea?  Keep the i386 tree, and
add an i686 tree that is optimized for P-II/Celeron/P-III processors.

This might be a pain in the butt for the mirrors (more hard drive space
used), but for some mirrors this would be just fine.  This would also make
Linux higher performing for all the people with flashy new Pentium-III
machines...

Just my ideas...

-Idea Man


------------------------------

From: Timothy Wall <[EMAIL PROTECTED]>
Crossposted-To: comp.arch.embedded
Subject: Re: RS485 & Linux: Must toggle DTR quickly
Date: Sat, 27 Mar 1999 06:40:04 -0500

A couple notes on interacting with the linux serial driver (I've been using
kernels 2.0.34-36):

* TIOCMGET directly accesses the UART registers, and when used from a user-level
program can mess up the serial driver's internal state (since many registers are
cleared when read/written).

* scheduling delay can be up to 10ms.

If you can't change the hardware, you might consider writing a custom character
driver for the device.  Get Alessandro Rubini's "Writing Linux Device Drivers"
book, and you can have a working solution in less than a week.

Tim Wall

"Tewpin Andrey (ôÀ?ÉÎ áÎÄÒÅÊ)" wrote:

> Olav Woelfelschneider ïèøåò â ñîîáùåíèè <[EMAIL PROTECTED]> ...
> >Keywords: RS485-Network, Linux
> >
>
> >This is the code snipplet for that approach:
> >
> >  {
> >    int arg;
> >
> >    /* DTR on */
> >    ioctl(com, TIOCMGET, &arg);
> >    arg|=TIOCM_DTR;
> >    ioctl(com, TIOCMSET, &arg);
> >
> >    /* Send data */
> >    if (write(com, buf, bp)!=bp) return -1;
> >
> >    /* Wait for transmitter to finish -- UGLY! */
> >    do {
> >      ioctl(com, TIOCSERGETLSR, &arg);
> >    } while((arg & TIOCSER_TEMT)==0);
> >
> >    /* DTR off */
> >    ioctl(com, TIOCMGET, &arg);
> >    arg&=~TIOCM_DTR;
> >    ioctl(com, TIOCMSET, &arg);
> >  }
>
> Pls, try so...
>
>   {
>    int arg;
>
>     //
>     //  m.b. off Tx FIFO? I do it for NT4, in Linux  I'm  nothing, yet.
>     // And do not know as work write in last.
>
>     /* DTR on */
>     ioctl(com, TIOCMGET, &arg);
>     arg|=TIOCM_DTR;
>     ioctl(com, TIOCMSET, &arg);
>
>     /* Send data */
>      *(buf+bp)=0x00;   // paddle fake byte: must be 0x00
>     if (write(com, buf, bp+1)!=(bp+1)) return -1;
>
>     /* Wait for transmitter to finish -- UGLY! */
>      //  do {
>      //     ioctl(com, TIOCSERGETLSR, &arg);
>      //  } while((arg & TIOCSER_TEMT)==0);
>     //
>
>     /* DTR off */
>     ioctl(com, TIOCMGET, &arg);
>     arg&=~TIOCM_DTR;
>     ioctl(com, TIOCMSET, &arg);
>   }
>
> >Before I go and hack up the serial driver to include automatic DTR toggling,
> >I wonder what other people might think.
> >
> >Any hints greatly appreciated!
> >
> >Thanks,
> >--
> >Olav "Mac" Wölfelschneider                         [EMAIL PROTECTED]
> >PGP fingerprint = 06 5F 66 B3  2A AD 7D 2D  B7 19 67 3C  95 A7 9D AF
> >Mer muß doch nur emol e bissje nochdenke. -- Mundstuhl
>
>         At7


------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list (and comp.os.linux.development.system) via:

    Internet: [EMAIL PROTECTED]

Linux may be obtained via one of these FTP sites:
    ftp.funet.fi                                pub/Linux
    tsx-11.mit.edu                              pub/linux
    sunsite.unc.edu                             pub/Linux

End of Linux-Development-System Digest
******************************

Reply via email to