CygWin 1.5.6-1

2004-01-20 Thread Lapo
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Hi.
New Cygin release (1.5.6-1) should solve the signaling problems that
made rsync lose track of its child process in the past.
Please report if you still have the hanged process problem.

Lapo

- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.2 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkAM2C0ACgkQaJiCLMjyUvunagCfUHNwWHIg+Gp5uZgM55t3TFY+
bE0AoJToU2eHYvOWu/847fa2kWzy1ZTe
=UIZC
-END PGP SIGNATURE-
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


running rsync in $HOME/bin?

2004-01-20 Thread Peter
Hi,

what exactly does rsync when logging in to a remote system? Is this a
normal login? So it starts a shell and reads $HOME/profile and
$HOME/.bashrc?


I must use rsync in my own account and copied rsync to $HOME/bin.

But it seems like rsync, started on another machine, does not find the
rsync binary. What can i proceed, to run rsync out of $HOME/bin?

Thank you for your attention!

Peter
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


How to trigger rsync after file changes?

2004-01-20 Thread Peter
Hi,

what is the best way to trigger rsync after a file upload? 

verbose: I want users to upload files to Server A. If all upload is
done, it should rsync itself to another server. 

The upload is done via ftp and users don´t want to use rsync
themselves, so what I am missing now ist something that triggers rsync
if something changed.

An alternative would be to use cron, but not a good one for similar
reasons. 

Maybe someone got this problem before?


Thank you very much!

Peter
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


How to avoid rsyncing incomplete uploads? (best practice on fileservers?)

2004-01-20 Thread Peter
Hi,

some big files are regularily updated on server A.

Rsync should sync that with Server B. 

If rsync starts in the middle of an upload process, will it copy that
incomplete file to Server B? 

First tests showed it will. How can this be avoided?


Comments on rsync-usage with big files and very active users would be
very appreciated!

Thanks!


Peter
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


goob

2004-01-20 Thread AWARDDEPARTMENT
ELGORDO DE LA PRIMITIVA LOTTERIA.
MADRID-SPAIN

REF:NO EG/38807886091/03
BATCH:340/1608/RDL.   
DATE:   30TH DICEMBER 2003  

  
DEAR.


RE:AWARD  NOTIFICATION  FINAL NOTICE
We are pleased to inform you of the release of the El Gordo de la primitva
Spanish sweepstaker lottery Int.promotion programs held on 6th JAN2004
Your name, attached to ticket number 033-1146993-750 with serial number
1223-05 drew  the ucky numbers 02 - 06 - 20 - 24 - 29 - 32  which
consequently won the lottery in  1st category.
You are therefore, been approved for a lump sum payout of US$868,810.0(EIGHT
hundred and SIXTYEIGHTthousand,eight hundred and ten  united states
Dollars) in cash, credited to the file number EG/38807886091/03,this is
from the total cash prize of  $13 ,868,770.00 Thirteen million Eight
hundred and sixty eight thousand,seven hundred and seventy. United States
Dollars, shared among the seventeen international winners in  this
category.Your fund is now deposited with a security company insured in your
name . Due to mixed up of some numbers and names, we ask 
that you keep this award top secrete from public notice until your claims
has been processed and your money remitted to your account as this is part
of our security protocol to avoid 
double claims or unwarranted taking advantage of this program by
participants.
All participants were selected through a computer ballot system drawn from
25,000 names from all over the world as part of our International promotion
programs  which we conduct twice every year. We hope  you will be amoung
our end  of the year high stake US$1.3bn lottery winners.
To begin your claim, please contact your claim agent MR RIKKY. TAN, the
foreign service manager of GLOBALSECURITY NET WORKon Tel:
+34-696-742-538FAX:+34-916-869-073. for. -EMAIL  [EMAIL PROTECTED]
processing and remittance of your money to designated account of your
choice. Remember, all prize money must be claimed not later  than four
weeks from the date of this notice,after this date all funds will be
returned to the ministerio de economia y hacienda  of Spain as
unclaimed.Note,in order  to avoid unnecessary delays and complications,
please quote your 
reference 
and batch number in every correspondence with us or your agent. Further
more, should there be any change of address, please inform your claims
agent as soon as possible Be informed 
that your agent is entitled to 10% of your total winning as commission for
purchasing the ticket that worn in your category after you must have
received your money in your account.Congratulations once again, from all
members  of staff and thank you  for  being part of our promotions program.

  
Yours Sincerely ,  

INTL.  LOTTO   COMMISSION
 (for the secretary) 
ELENA . GACIA

CERTIFICADO   
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


¼x¶Ç²Î¸g¾P°Ó

2004-01-20 Thread MV¥Í¤Æ¬ì§ÞÁ`¥N²z°Ó






(This safeguard is not inserted when using the registered version)













(This safeguard is not inserted when using the registered version)







-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


How to avoid rsyncing incomplete uploads? (best practice on fileservers?)

2004-01-20 Thread Peter
Hi,

some big files are regularily updated on server A.

Rsync should sync that with Server B (wow! :)

If rsync starts in the middle of an upload process, will it copy that
incomplete file to Server B? 

First tests showed it will. How can this be avoided?

Comments on rsync-usage with big files and very active users would be
very appreciated!

Thanks!


Peter

-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: Improving name-truncation detection

2004-01-20 Thread Wayne Davison
On Mon, Jan 19, 2004 at 02:39:56PM -0800, jw schultz wrote:
 If we are going to vet the path name for overflow (a good idea) lets
 do it once, explicitly, as we receive it instead of having tests
 scattered throughout the code.

Fortunately the receive_file_entry() call was already checking this.
The sender code could have possibly created an entry that would overflow
once basedir was prefixed, so I've added code to make_file() that makes
sure that we don't add an entry to the list where that would happen.
Then we can simplify f_name_to() to not take a size limit (since all
flist entries will not overflow MAXPATHLEN).

..wayne..
Index: flist.c
--- flist.c 20 Jan 2004 17:46:30 -  1.167
+++ flist.c 20 Jan 2004 18:24:45 -
@@ -315,6 +315,7 @@ static mode_t from_wire_mode(int mode)
 static void send_directory(int f, struct file_list *flist, char *dir);
 
 static char *flist_dir;
+static int flist_dir_len;
 
 
 /**
@@ -381,7 +382,7 @@ void send_file_entry(struct file_struct 
 
io_write_phase = send_file_entry;
 
-   fname = f_name_to(file, fbuf, sizeof fbuf);
+   fname = f_name_to(file, fbuf);
 
flags = base_flags;
 
@@ -522,7 +523,6 @@ void send_file_entry(struct file_struct 
}
 
strlcpy(lastname, fname, MAXPATHLEN);
-   lastname[MAXPATHLEN - 1] = 0;
 
io_write_phase = unknown;
 }
@@ -750,8 +750,11 @@ struct file_struct *make_file(char *fnam
char cleaned_name[MAXPATHLEN];
char linkbuf[MAXPATHLEN];
 
-   strlcpy(cleaned_name, fname, MAXPATHLEN);
-   cleaned_name[MAXPATHLEN - 1] = 0;
+   if (strlcpy(cleaned_name, fname, sizeof cleaned_name)
+   = sizeof cleaned_name - flist_dir_len) {
+   rprintf(FINFO, skipping overly long name: %s\n, fname);
+   return NULL;
+   }
clean_fname(cleaned_name);
if (sanitize_paths)
sanitize_path(cleaned_name, NULL);
@@ -852,16 +855,7 @@ struct file_struct *make_file(char *fnam
file_checksum(fname, file-u.sum, st.st_size);
}
 
-   if (flist_dir) {
-   static char *lastdir;
-   if (lastdir  strcmp(lastdir, flist_dir) == 0)
-   file-basedir = lastdir;
-   else {
-   file-basedir = strdup(flist_dir);
-   lastdir = file-basedir;
-   }
-   } else
-   file-basedir = NULL;
+   file-basedir = flist_dir;
 
if (!S_ISDIR(st.st_mode))
stats.total_size += st.st_size;
@@ -900,7 +894,7 @@ void send_file_name(int f, struct file_l
if (S_ISDIR(file-mode)  recursive) {
struct exclude_struct **last_exclude_list =
local_exclude_list;
-   send_directory(f, flist, f_name_to(file, fbuf, sizeof fbuf));
+   send_directory(f, flist, f_name_to(file, fbuf));
local_exclude_list = last_exclude_list;
return;
}
@@ -1106,6 +1100,9 @@ struct file_list *send_file_list(int f, 
fname = .;
 
if (dir  *dir) {
+   static char *lastdir;
+   static int lastdir_len;
+
strcpy(olddir, curr_dir); /* can't overflow */
 
if (!push_dir(dir)) {
@@ -1115,7 +1112,15 @@ struct file_list *send_file_list(int f, 
continue;
}
 
-   flist_dir = dir;
+   if (lastdir  strcmp(lastdir, dir) == 0) {
+   flist_dir = lastdir;
+   flist_dir_len = lastdir_len;
+   } else {
+   if (lastdir)
+   free(lastdir);
+   flist_dir = lastdir = strdup(dir);
+   flist_dir_len = lastdir_len = strlen(dir);
+   }
}
 
if (one_file_system)
@@ -1125,6 +1130,7 @@ struct file_list *send_file_list(int f, 
 
if (olddir[0]) {
flist_dir = NULL;
+   flist_dir_len = 0;
if (!pop_dir(olddir)) {
rprintf(FERROR, pop_dir %s failed: %s\n,
full_fname(dir), strerror(errno));
@@ -1510,19 +1516,21 @@ int f_name_cmp(struct file_struct *f1, s
 
 
 /* Return a copy of the full filename of a flist entry, using the indicated
- * buffer.
+ * buffer.  No size-checking is done because we checked the size when creating
+ * the file_struct entry.
  */
-char *f_name_to(struct file_struct *f, char *fbuf, int bsize)
+char *f_name_to(struct file_struct *f, char *fbuf)
 {
if (!f || !f-basename)
return NULL;
 
if (f-dirname) {
-   int off = strlcpy(fbuf, f-dirname, bsize);
-   off 

rsync 2.6.0 BIG memory leak

2004-01-20 Thread Kelly Garrett
Greetings all,

I have downloaded and built rsync 2.6.0 on our HP ProLiant DL380-G3 servers (2 
Hyperthread processors, 4 GB RAM, 840 GB Hard Disk, etc. etc.) running Red Hat 
8 with the latest errata kernel (2.4.20-28smp) and updates from HP for RH8.

rsync is run in daemon mode from xinetd.  When doing transfers the machine 
requesting the transfer starts to run out of memory.  After every rsync 
transfer there is a large amount of memory that is not freed up.  The amount 
seems to be related to the number of files being transfered, not the number of 
bytes transfered.  It is interesting to note that the transfer is started from 
the receiving machine, and the memory leak is on the receiving side.  The 
sending side does not experience the leak.

I have read other lists where there were memory leak problems with older 
versions that were related to the files lists and tokens, and I am wondering if 
that has crept back into the 2.6.0 code.

Any help would be appreciated.

Thanks

Kelly

-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: How to avoid rsyncing incomplete uploads? (best practice on fileservers?)

2004-01-20 Thread jw schultz
On Tue, Jan 20, 2004 at 03:37:38PM +0100, Peter wrote:
 Hi,
 
 some big files are regularily updated on server A.
 
 Rsync should sync that with Server B. 
 
 If rsync starts in the middle of an upload process, will it copy that
 incomplete file to Server B? 
 
 First tests showed it will. How can this be avoided?
 
 
 Comments on rsync-usage with big files and very active users would be
 very appreciated!
 

You have asked several questions all of which are answered
in the archives.  Happy spelunking.

-- 

J.W. SchultzPegasystems Technologies
email address:  [EMAIL PROTECTED]

Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync 2.6.0 - suspected memory leak bug

2004-01-20 Thread Wayne Davison
On Tue, Jan 20, 2004 at 02:45:47PM -0700, Garrett, Kelly wrote:
 After every rsync transfer there is a large amount of memory that is
 not freed up.

Your report sounds like you're not talking about process size, but a
free-memory report from something like top.  If so, Linux uses unused
memory as disk cache, so the more disk I/O that happens, the less free
memory you'll see on your system.  This isn't a bad thing, though, as
this disk-cache memory will get used for process memory as needed.  Also
keep in mind that once a process terminates, there's no way it can
continue to hold memory (unless there's a bug in the kernel).

If you meant something else, please explain what you're measuring.  In
my tests rsync's memory size stays steady throughout the transfer (once
the file list has been built).  Shared memory between the forked
processes on the receiving side does slowly become unshared, but that
happened in prior rsync versions too (and we've got an internal change
in CVS that should make this better for the next release).

..wayne..
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: How to avoid rsyncing incomplete uploads? (best practice on fileservers?)

2004-01-20 Thread Wayne Davison
On Tue, Jan 20, 2004 at 03:37:38PM +0100, Peter wrote:
 If rsync starts in the middle of an upload process, will it copy that
 incomplete file to Server B? 

Sure, it copies every file that it finds unless you tell it not to.  The
best way to handle active uploads is to send them to an in transfer
dir (which can be ignored) or use a specific idiom for temp-files (which
can also be ignored -- see excludes).  At the end of the transfer, the
ftp sender would then rename the file to its final name/location.  If
you want to limit files based on recency of update, you'll have to make
your own file list and control rsync more directly (such as using the
--files-from option).

..wayne..
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync 2.6.0 - suspected memory leak bug

2004-01-20 Thread jw schultz
On Tue, Jan 20, 2004 at 06:09:09PM -0800, Wayne Davison wrote:
 On Tue, Jan 20, 2004 at 02:45:47PM -0700, Garrett, Kelly wrote:
  After every rsync transfer there is a large amount of memory that is
  not freed up.
 
 Your report sounds like you're not talking about process size, but a
 free-memory report from something like top.  If so, Linux uses unused
 memory as disk cache, so the more disk I/O that happens, the less free
 memory you'll see on your system.  This isn't a bad thing, though, as
 this disk-cache memory will get used for process memory as needed.  Also
 keep in mind that once a process terminates, there's no way it can
 continue to hold memory (unless there's a bug in the kernel).
 
 If you meant something else, please explain what you're measuring.  In
 my tests rsync's memory size stays steady throughout the transfer (once
 the file list has been built).  Shared memory between the forked
 processes on the receiving side does slowly become unshared, but that
 happened in prior rsync versions too (and we've got an internal change
 in CVS that should make this better for the next release).

When running the daemon as a detached processes the
forked processes exit, freeing that memrory.  As far as i
can tell Under inetd each connection should get independant
rsync process(es) which all exit so there would be no rsync
processes running unless there is an active connection.


-- 

J.W. SchultzPegasystems Technologies
email address:  [EMAIL PROTECTED]

Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync 2.6.0 - suspected memory leak bug

2004-01-20 Thread Wayne Davison
On Tue, Jan 20, 2004 at 06:16:34PM -0800, jw schultz wrote:
 As far as i can tell Under inetd each connection should get
 independant rsync process(es) which all exit so there would be no
 rsync processes running unless there is an active connection.

Yes, that's my understanding as well.  He also said that the receiving
side is initiating the connection (and having the problem), so I'm
assuming that he's not complaining about the daemon side.

One other thing I thought of:  Kelly, check for lingering rsync
processe(s) in the process table.  That's the only way I know that
memory could continue to be allocated at the end of a transfer:  if
one of the processes didn't actually exit.

..wayne..
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


2.6.0 in cygwin problem

2004-01-20 Thread Dmitry Melekhov
Hello!

I need to do rsync between local drives on win32.
Rsync works, but it never ends.
I started it with -vv and it writes something like:
total: matches=0 tag_hits=0 false_alarms=0 data=0
And then it stays forever.
:-(
Could you help me?


--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


how about auth users without a password?

2004-01-20 Thread Larry Brasfield
Hi, from a generally pleased new rsync user.

I have setup a number of services to be accessible via SSH.
For most of them, it has been possible to arrange that clients
can use a key agent and ssh's level 2 protocol to gain access
without the need of entering passwords more than once, at
the start of a session (assuming their keys are not stored in
the clear).

Most of these services can be setup to restrict specific users
to specific subsets of the potentially available access.  With
rsync, this appears to be feasible using the auth users
configuration item in rsyncd.conf, but in my efforts so far,
this always results in a password prompt.

So, this is either a question or a suggestion.

How can I use rsyncd.conf to limit module access to specific
users (or groups, preferably) without inducing rsync to demand
a password?  If this is not presently possible, I suggest that a
nice enhancement would be to make it possible via some device
such as a '*' in the associated password entry.  This might be
limited to rsync invocations by a currently authenticated user
(such as occurs with SSH access) and disallowed for the listen
on rsync's port mode of operation.

I would like to use SSH to authenticate users and grant access
to the machine, leaving more specific rights management to the
configuration of individual services.  With rsync, these functions
appear to be a bit more intertwined than they have to be.

If people think this is a good idea, (especially the owners of
rsync), I would be happy to revise the code to make it work.
Let me know at
   larry nospacehere brasfield at m s n dot com
and I will post the results to this list/thread after a week or so.

--
Larry Brasfield
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: 2.6.0 in cygwin problem

2004-01-20 Thread Jeremy Lin
rsync hangs under Cygwin have been a longstanding issue. There was a
message earlier today about upgrading to the 1.5.6-1 cygwin dll, which
supposedly fixes the problem (and does, for me).

* On Jan 21, 2004 at 09:16:21, Dmitry Melekhov wrote:
 Hello!
 
 I need to do rsync between local drives on win32.
 Rsync works, but it never ends.
 I started it with -vv and it writes something like:
 total: matches=0 tag_hits=0 false_alarms=0 data=0
 And then it stays forever.
 :-(
 Could you help me?
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


GOOD DAY

2004-01-20 Thread MR. MYK KALU
FROM: MR. MYK KALU
DIRECTOR, DELIVERY/OPERATIONS



RE: TRANSFER OF OVER US$15M FOR INVESTMENT.
MR. MYK KALU, the Director of
Delivery/Operations in a security
company here in South Africa. Our firm is a security
company of high
repute with years of outstanding service to the people

of Africa
especially top government officials and milita
ry leaders here in Africa. I have resolved to contact
you through this
medium based on business proposal that will be of
mutual benefit to
both of us. I have not discussed this transaction with

anybody because it
is of top secret.

To be explicit and straight to the point, Some time
early 1997, a
reputable client of ours deposited a consignment in
our company's vault for
safe keeping. And since then our client has failed to
come forward to
claim his consignment, which has accumulated a
considerable amount of money in demurrage.
Consequently, in our
bid to contact this client to redeem the demurrage
which his consignment
had accumulated we discovered that our client was the
former president
of the Federal Republic of Zaire, who di

ed of illness after he was dethroned in the same year
the consignment
was entrusted into our care.




Since the death of our client President Mobutu
Seseseko, none of his
benefactors has come forward to claim the consignment
with us, which
means that non of his relatives or aids had any
knowledge of this
consignment. Hence out of curiosity I decided to s

ecretly find out the real content of the box.This I
did with the aid of a sophisticated scanning machine.
And to my
surprise I discovered that the two boxes that were
registered as
treasures by our client actually contained a
considerable amount of money in
United States Dollars estimated to be over
US$15million US Dollar.
Since this development I have been nursing plans
secretly. I also found out
from enquiries and the foreign media that our late
client siphoned a
lot of money from his country while he was

in office as head of state. It is my conviction that
the consignment in
our vault was part of the money that our client
siphoned and now that
he is dead there is no trace to this money in our
care. I am now
soliciting your noble assistance to assist me
in transferring this money out of South Africa to your

country for
immediate investment with your assistance.

I have also decided that you will generously be
entitled to 40% of the
total amount. Upon my receipt of your reply confirming

your willingness
to assist me of this transaction, I will immediately
arrange and
transfer all the rights of ownership of this c

onsignment to your name to facilitate your easy
clearance and transfer
of the complete funds to your country for onwards
investment. This
transaction is 100% risk free. Please maintain
absolute confidentiality on
this matter.

I await your most prompt response.

Yours faithfully.

MR. MYK KALU







___
rsync-cvs mailing list
[EMAIL PROTECTED]
http://lists.samba.org/mailman/listinfo/rsync-cvs


CVS update: rsync

2004-01-20 Thread Wayne Davison

Date:   Tue Jan 20 17:46:30 2004
Author: wayned

Update of /data/cvs/rsync
In directory dp.samba.org:/home/wayned/src/r

Modified Files:
flist.c 
Log Message:
- Use the new push_dir() and pop_dir() calling syntax.
- The olddir handling changed to accommodate the above, and to
  avoid using malloc()/free().


Revisions:
flist.c 1.166 = 1.167
http://www.samba.org/cgi-bin/cvsweb/rsync/flist.c.diff?r1=1.166r2=1.167
___
rsync-cvs mailing list
[EMAIL PROTECTED]
http://lists.samba.org/mailman/listinfo/rsync-cvs


CVS update: rsync

2004-01-20 Thread Wayne Davison

Date:   Tue Jan 20 17:46:31 2004
Author: wayned

Update of /data/cvs/rsync
In directory dp.samba.org:/home/wayned/src/r

Modified Files:
clientserver.c main.c proto.h 
Log Message:
Use new push_dir() syntax.


Revisions:
clientserver.c  1.112 = 1.113
http://www.samba.org/cgi-bin/cvsweb/rsync/clientserver.c.diff?r1=1.112r2=1.113
main.c  1.182 = 1.183
http://www.samba.org/cgi-bin/cvsweb/rsync/main.c.diff?r1=1.182r2=1.183
proto.h 1.173 = 1.174
http://www.samba.org/cgi-bin/cvsweb/rsync/proto.h.diff?r1=1.173r2=1.174
___
rsync-cvs mailing list
[EMAIL PROTECTED]
http://lists.samba.org/mailman/listinfo/rsync-cvs